using System.Collections.Generic;

namespace GuitarChordFinder
{
    /// <summary>
    /// Maps the strings and their frets with the notes assigned to each.
    /// This is a fixed set of data points that is referenced. This is a the data source.
    /// </summary>
    public class StringInfoChartData
    {
        // 6 strings, each with 5 frets (+ open) and their notes
        public List<StringData> StringNotesList { get; set; }

        public StringInfoChartData()
        {
            StringNotesList = new List<StringData>
                                  { 
                                      new StringData { StringNumber = 1, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "E"}, AudioFile="E-1-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "F"} , AudioFile="F-1-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "F#"}, AudioFile="Fs-1-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "G"} , AudioFile="G-1-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "G#"}, AudioFile="Gs-1-4.mp3" },
                                                                                                new FretData {FretNumber = 5, Note = new Note {Code = "A"}, AudioFile="A-1-5.mp3" }
                                                                                            } },
                                      new StringData { StringNumber = 2, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "B"}, AudioFile="B-2-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "C"}, AudioFile="C-2-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "C#"}, AudioFile="Cs-2-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "D"}, AudioFile="D-2-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "D#"}, AudioFile="Ds-2-4.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "E"} , AudioFile="E-2-5.mp3" }
                                                                                            } },
                                      new StringData { StringNumber = 3, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "G"}, AudioFile="G-3-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "G#"}, AudioFile="Gs-3-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "A"}, AudioFile="A-3-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "A#"}, AudioFile="As-3-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "B"}, AudioFile="B-3-4.mp3" },
                                                                                                new FretData {FretNumber = 5, Note = new Note {Code = "C"}, AudioFile="C-3-5.mp3" }
                                                                                            } }, 
                                      new StringData { StringNumber = 4, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "D"}, AudioFile="D-4-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "D#"}, AudioFile="Ds-4-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "E"}, AudioFile="E-4-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "F"}, AudioFile="F-4-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "F#"}, AudioFile="Fs-4-4.mp3" },
                                                                                                new FretData {FretNumber = 5, Note = new Note {Code = "G"}, AudioFile="G-4-5.mp3" }
                                                                                            } },
                                      new StringData { StringNumber = 5, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "A"}, AudioFile="A-5-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "A#"}, AudioFile="As-5-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "B"}, AudioFile="B-5-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "C"}, AudioFile="C-5-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "C#"}, AudioFile="Cs-5-4.mp3" },
                                                                                                new FretData {FretNumber = 5, Note = new Note {Code = "D"}, AudioFile="D-5-5.mp3" },
                                                                                            } },
                                      new StringData { StringNumber = 6, FretNoteList = new List<FretData>
                                                                                            {
                                                                                                new FretData {FretNumber = 0, Note = new Note {Code = "E"}, AudioFile="E-6-0.mp3" },
                                                                                                new FretData {FretNumber = 1, Note = new Note {Code = "F"}, AudioFile="F-6-1.mp3" },
                                                                                                new FretData {FretNumber = 2, Note = new Note {Code = "F#"}, AudioFile="Fs-6-2.mp3" },
                                                                                                new FretData {FretNumber = 3, Note = new Note {Code = "G"}, AudioFile="G-6-3.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "G#"}, AudioFile="Gs-6-4.mp3" },
                                                                                                new FretData {FretNumber = 4, Note = new Note {Code = "A"}, AudioFile="A-6-5.mp3" }
                                                                                            } }
                                  };
        }
    }
}